package com.chunuo.common.valid;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 类的作用
 *
 * @author liujiamiao
 * @email 2544296058@qq.com
 * @date 2020-06-28 21:29
 */
@Documented
@Constraint(
        //指定实现ConstraintValidator的类，并且为这个注解实现功能
        validatedBy = {ListValueConstraintValidator.class}
)
//注解可以写在哪些上，如：属性、方法、类
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
//运行时执行
@Retention(RetentionPolicy.RUNTIME)
public @interface ListValid {
    //会从resources中找到ValidationMessages.properties配置文件，
    // 里面的com.chunuo.common.valid.ListValue.message作为错误内容返回
    //（必须有点的）
    String message() default "{com.chunuo.common.valid.ListValue.message}";

    //校验组（必须有点的）
    Class<?>[] groups() default {};

    //（必须有点的）
    Class<? extends Payload>[] payload() default {};

    //自己定义的需求，这里是一个int数组，而在注解上定义的值，注入时必须遵循，
    //如：注解上{0,1}，注入值时，这个值必须是0/1
    int[] value() default {};
}
